home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Source / GNU / emacs / etc / APOLLO < prev    next >
Text File  |  1986-07-16  |  2KB  |  40 lines

  1. The Apollo has a bizarre operating system which does not permit
  2. Emacs to be dumped with preloaded pure Lisp code.  Therefore, each
  3. time you start Emacs on this system, the standard Lisp code is loaded
  4. into it.  Expect it to take a long time.  You can prevent loading of
  5. the standard Lisp code by specifying the -nl switch.  It must
  6. come at the beginning of the command line; only the -t and -batch
  7. switches may come before it.
  8.  
  9. You must use m-apollo.h in the config.h file, together with
  10. s-bsd4.2.h.
  11.  
  12. There is one remaining problem on the Apollo.  You must replace
  13. the CPP line in src/Makefile with "CPP = /usr/lib/cpp".
  14. The C preprocessor lives there rather than in /lib/cpp because the
  15. Aegis OS uses the /lib directory as the repository for shared libraries.
  16.  
  17.  
  18. Here is a design for a method of dumping and reloading the relevant
  19. necessary impure areas of Emacs.
  20.  
  21. On dumping, you need to dump only the array `pure' plus the
  22. locations that contain values of forwarded Lisp variables or that are
  23. protected for garbage collection.  The former can be found by a
  24. garbage- collection-like technique, and the latter are in the
  25. staticprolist vector (see alloc.c for both things).
  26.  
  27. Reloading would work in an Emacs that has just been started; except
  28. when a switch is specified to inhibit this, it would read the dump
  29. file and set all the appropriate locations.  The data loaded must be
  30. relocated, but that's not hard.  Those locations that are of type
  31. Lisp_Object can be found by a technique like garbage-collection, and
  32. those of them that point to storage can be relocated.  The other data
  33. read from the file will not need to be relocated.
  34.  
  35. The switch to inhibit loading the data base would be used when it
  36. is time to dump a new data base.
  37.  
  38. This would take a few seconds, which is much faster than loading
  39. the Lisp code of Emacs from scratch.
  40.